<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>add_sample_class_gmm [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_classification.html">分类</a> / <a href="toc_classification_gaussianmixturemodels.html">Gaussian Mixture Models</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">add_sample_class_gmm</span><span data-if="c" style="display:none;">T_add_sample_class_gmm</span><span data-if="cpp" style="display:none;">AddSampleClassGmm</span><span data-if="dotnet" style="display:none;">AddSampleClassGmm</span><span data-if="python" style="display:none;">add_sample_class_gmm</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">add_sample_class_gmm</span><span data-if="c" style="display:none;">T_add_sample_class_gmm</span><span data-if="cpp" style="display:none;">AddSampleClassGmm</span><span data-if="dotnet" style="display:none;">AddSampleClassGmm</span><span data-if="python" style="display:none;">add_sample_class_gmm</span></code> — Add a training sample to the training data of a Gaussian Mixture
Model.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>add_sample_class_gmm</b>( :  : <a href="#GMMHandle"><i>GMMHandle</i></a>, <a href="#Features"><i>特征</i></a>, <a href="#ClassID"><i>ClassID</i></a>, <a href="#Randomize"><i>Randomize</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_add_sample_class_gmm</b>(const Htuple <a href="#GMMHandle"><i>GMMHandle</i></a>, const Htuple <a href="#Features"><i>特征</i></a>, const Htuple <a href="#ClassID"><i>ClassID</i></a>, const Htuple <a href="#Randomize"><i>Randomize</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>AddSampleClassGmm</b>(const HTuple&amp; <a href="#GMMHandle"><i>GMMHandle</i></a>, const HTuple&amp; <a href="#Features"><i>特征</i></a>, const HTuple&amp; <a href="#ClassID"><i>ClassID</i></a>, const HTuple&amp; <a href="#Randomize"><i>Randomize</i></a>)</code></p>
<p>
<code>void <a href="HClassGmm.html">HClassGmm</a>::<b>AddSampleClassGmm</b>(const HTuple&amp; <a href="#Features"><i>特征</i></a>, Hlong <a href="#ClassID"><i>ClassID</i></a>, double <a href="#Randomize"><i>Randomize</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>AddSampleClassGmm</b>(<a href="HTuple.html">HTuple</a> <a href="#GMMHandle"><i>GMMHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Features"><i>特征</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ClassID"><i>classID</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Randomize"><i>randomize</i></a>)</code></p>
<p>
<code>void <a href="HClassGmm.html">HClassGmm</a>.<b>AddSampleClassGmm</b>(<a href="HTuple.html">HTuple</a> <a href="#Features"><i>特征</i></a>, int <a href="#ClassID"><i>classID</i></a>, double <a href="#Randomize"><i>randomize</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>add_sample_class_gmm</b>(<a href="#GMMHandle"><i>gmmhandle</i></a>: HHandle, <a href="#Features"><i>特征</i></a>: Sequence[float], <a href="#ClassID"><i>class_id</i></a>: int, <a href="#Randomize"><i>randomize</i></a>: float) -&gt; None</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">add_sample_class_gmm</span><span data-if="c" style="display:none">add_sample_class_gmm</span><span data-if="cpp" style="display:none">AddSampleClassGmm</span><span data-if="com" style="display:none">AddSampleClassGmm</span><span data-if="dotnet" style="display:none">AddSampleClassGmm</span><span data-if="python" style="display:none">add_sample_class_gmm</span></code> adds a training sample to the Gaussian
Mixture Model (GMM) given by <a href="#GMMHandle"><i><code><span data-if="hdevelop" style="display:inline">GMMHandle</span><span data-if="c" style="display:none">GMMHandle</span><span data-if="cpp" style="display:none">GMMHandle</span><span data-if="com" style="display:none">GMMHandle</span><span data-if="dotnet" style="display:none">GMMHandle</span><span data-if="python" style="display:none">gmmhandle</span></code></i></a>.  The training
sample is given by <a href="#Features"><i><code><span data-if="hdevelop" style="display:inline">特征</span><span data-if="c" style="display:none">特征</span><span data-if="cpp" style="display:none">特征</span><span data-if="com" style="display:none">特征</span><span data-if="dotnet" style="display:none">特征</span><span data-if="python" style="display:none">特征</span></code></i></a> and <a href="#ClassID"><i><code><span data-if="hdevelop" style="display:inline">ClassID</span><span data-if="c" style="display:none">ClassID</span><span data-if="cpp" style="display:none">ClassID</span><span data-if="com" style="display:none">ClassID</span><span data-if="dotnet" style="display:none">classID</span><span data-if="python" style="display:none">class_id</span></code></i></a>.
<a href="#Features"><i><code><span data-if="hdevelop" style="display:inline">特征</span><span data-if="c" style="display:none">特征</span><span data-if="cpp" style="display:none">特征</span><span data-if="com" style="display:none">特征</span><span data-if="dotnet" style="display:none">特征</span><span data-if="python" style="display:none">特征</span></code></i></a> is the feature vector of the sample, and
consequently must be a real vector of length <code><span data-if="hdevelop" style="display:inline">NumDim</span><span data-if="c" style="display:none">NumDim</span><span data-if="cpp" style="display:none">NumDim</span><span data-if="com" style="display:none">NumDim</span><span data-if="dotnet" style="display:none">numDim</span><span data-if="python" style="display:none">num_dim</span></code>, as
specified in <a href="create_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">create_class_gmm</span><span data-if="c" style="display:none">create_class_gmm</span><span data-if="cpp" style="display:none">CreateClassGmm</span><span data-if="com" style="display:none">CreateClassGmm</span><span data-if="dotnet" style="display:none">CreateClassGmm</span><span data-if="python" style="display:none">create_class_gmm</span></code></a>.  <a href="#ClassID"><i><code><span data-if="hdevelop" style="display:inline">ClassID</span><span data-if="c" style="display:none">ClassID</span><span data-if="cpp" style="display:none">ClassID</span><span data-if="com" style="display:none">ClassID</span><span data-if="dotnet" style="display:none">classID</span><span data-if="python" style="display:none">class_id</span></code></i></a> is the
class of the sample, an integer between 0 and <code><span data-if="hdevelop" style="display:inline">NumClasses</span><span data-if="c" style="display:none">NumClasses</span><span data-if="cpp" style="display:none">NumClasses</span><span data-if="com" style="display:none">NumClasses</span><span data-if="dotnet" style="display:none">numClasses</span><span data-if="python" style="display:none">num_classes</span></code>-1
(set in <a href="create_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">create_class_gmm</span><span data-if="c" style="display:none">create_class_gmm</span><span data-if="cpp" style="display:none">CreateClassGmm</span><span data-if="com" style="display:none">CreateClassGmm</span><span data-if="dotnet" style="display:none">CreateClassGmm</span><span data-if="python" style="display:none">create_class_gmm</span></code></a>).
</p>
<p>In the special case where the feature vectors are of
<b>integer</b> type, they are lying in the feature space in a grid
with step width 1.0.  For example, the RGB feature vectors typically
used for color classification are triples having integer values
between 0 and 255 for each of their components.  In fact, there
might be even several feature vectors representing the same point.
When training a GMM with such data, the training algorithm may tend
to align the modelled Gaussians along linearly dependent lines or
planes of data that are parallel to the grid dimensions.  If the
number of <code><span data-if="hdevelop" style="display:inline">Centers</span><span data-if="c" style="display:none">Centers</span><span data-if="cpp" style="display:none">Centers</span><span data-if="com" style="display:none">Centers</span><span data-if="dotnet" style="display:none">centers</span><span data-if="python" style="display:none">centers</span></code> returned by <a href="train_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">train_class_gmm</span><span data-if="c" style="display:none">train_class_gmm</span><span data-if="cpp" style="display:none">TrainClassGmm</span><span data-if="com" style="display:none">TrainClassGmm</span><span data-if="dotnet" style="display:none">TrainClassGmm</span><span data-if="python" style="display:none">train_class_gmm</span></code></a> is
unusually high, this indicates such a behavior of the algorithm.
The parameter <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> can be used to handle such
undesired effects.  If <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> &gt; 0.0, random Gaussian
noise with mean 0 and standard deviation <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> is added
to each component of the training data vectors, and the transformed
training data is stored in the GMM.  For values of
<a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> <span title="1" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
</svg></span> 1.0, the randomized data will look
like small clouds around the grid points, which does not improve the
properties of the data cloud.  For values of <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a>
&gt;&gt; 2.0, the randomization might have a too strong
influence on the resulting GMM.  For integer feature vectors, a
value of <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> between 1.5 and 2.0 is recommended,
which transforms the integer data into homogeneous clouds,
without modifying its general form in the feature space.  If the
data has been created from integer data by scaling, the same
problem may occur.  Here, <a href="#Randomize"><i><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></i></a> must be scaled with the
same scale factor that was used to scale the original data.
</p>
<p>Before the GMM can be trained with <a href="train_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">train_class_gmm</span><span data-if="c" style="display:none">train_class_gmm</span><span data-if="cpp" style="display:none">TrainClassGmm</span><span data-if="com" style="display:none">TrainClassGmm</span><span data-if="dotnet" style="display:none">TrainClassGmm</span><span data-if="python" style="display:none">train_class_gmm</span></code></a>,
<i>all</i> training samples must be added to the GMM with
<code><span data-if="hdevelop" style="display:inline">add_sample_class_gmm</span><span data-if="c" style="display:none">add_sample_class_gmm</span><span data-if="cpp" style="display:none">AddSampleClassGmm</span><span data-if="com" style="display:none">AddSampleClassGmm</span><span data-if="dotnet" style="display:none">AddSampleClassGmm</span><span data-if="python" style="display:none">add_sample_class_gmm</span></code>.
</p>
<p>The number of currently stored training samples can be queried with
<a href="get_sample_num_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">get_sample_num_class_gmm</span><span data-if="c" style="display:none">get_sample_num_class_gmm</span><span data-if="cpp" style="display:none">GetSampleNumClassGmm</span><span data-if="com" style="display:none">GetSampleNumClassGmm</span><span data-if="dotnet" style="display:none">GetSampleNumClassGmm</span><span data-if="python" style="display:none">get_sample_num_class_gmm</span></code></a>.  Stored training samples can be
read out again with <a href="get_sample_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">get_sample_class_gmm</span><span data-if="c" style="display:none">get_sample_class_gmm</span><span data-if="cpp" style="display:none">GetSampleClassGmm</span><span data-if="com" style="display:none">GetSampleClassGmm</span><span data-if="dotnet" style="display:none">GetSampleClassGmm</span><span data-if="python" style="display:none">get_sample_class_gmm</span></code></a>.
</p>
<p>Normally, it is useful to save the training samples in a file with
<a href="write_samples_class_gmm.html"><code><span data-if="hdevelop" style="display:inline">write_samples_class_gmm</span><span data-if="c" style="display:none">write_samples_class_gmm</span><span data-if="cpp" style="display:none">WriteSamplesClassGmm</span><span data-if="com" style="display:none">WriteSamplesClassGmm</span><span data-if="dotnet" style="display:none">WriteSamplesClassGmm</span><span data-if="python" style="display:none">write_samples_class_gmm</span></code></a> to facilitate reusing the samples,
and to facilitate that, if necessary, new training samples can be
added to the data set, and hence to facilitate that a <i>newly
created</i> GMM can be trained <i>anew</i> with the extended data
set.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#GMMHandle"><span data-if="hdevelop" style="display:inline">GMMHandle</span><span data-if="c" style="display:none">GMMHandle</span><span data-if="cpp" style="display:none">GMMHandle</span><span data-if="com" style="display:none">GMMHandle</span><span data-if="dotnet" style="display:none">GMMHandle</span><span data-if="python" style="display:none">gmmhandle</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="GMMHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GMMHandle</span><span data-if="c" style="display:none">GMMHandle</span><span data-if="cpp" style="display:none">GMMHandle</span><span data-if="com" style="display:none">GMMHandle</span><span data-if="dotnet" style="display:none">GMMHandle</span><span data-if="python" style="display:none">gmmhandle</span></code></b> (input_control, state is modified)  </span><span>class_gmm <code>→</code> <span data-if="dotnet" style="display:none"><a href="HClassGmm.html">HClassGmm</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">GMM handle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Features" class="parname"><b><code><span data-if="hdevelop" style="display:inline">特征</span><span data-if="c" style="display:none">特征</span><span data-if="cpp" style="display:none">特征</span><span data-if="com" style="display:none">特征</span><span data-if="dotnet" style="display:none">特征</span><span data-if="python" style="display:none">特征</span></code></b> (input_control)  </span><span>real-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Feature vector of the training sample to be
stored.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ClassID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ClassID</span><span data-if="c" style="display:none">ClassID</span><span data-if="cpp" style="display:none">ClassID</span><span data-if="com" style="display:none">ClassID</span><span data-if="dotnet" style="display:none">classID</span><span data-if="python" style="display:none">class_id</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Class of the training sample to be stored.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Randomize" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Randomize</span><span data-if="c" style="display:none">Randomize</span><span data-if="cpp" style="display:none">Randomize</span><span data-if="com" style="display:none">Randomize</span><span data-if="dotnet" style="display:none">randomize</span><span data-if="python" style="display:none">randomize</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Standard deviation of the Gaussian noise added
to the training data.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.0, 1.5, 2.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>Randomize &gt;= 0.0</code></p>
</div>
<h2 id="sec_result">结果</h2>
<p>如果参数均有效，算子
<code><span data-if="hdevelop" style="display:inline">add_sample_class_gmm</span><span data-if="c" style="display:none">add_sample_class_gmm</span><span data-if="cpp" style="display:none">AddSampleClassGmm</span><span data-if="com" style="display:none">AddSampleClassGmm</span><span data-if="dotnet" style="display:none">AddSampleClassGmm</span><span data-if="python" style="display:none">add_sample_class_gmm</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If necessary
an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_class_gmm.html"><span data-if="hdevelop" style="display:inline">create_class_gmm</span><span data-if="c" style="display:none">create_class_gmm</span><span data-if="cpp" style="display:none">CreateClassGmm</span><span data-if="com" style="display:none">CreateClassGmm</span><span data-if="dotnet" style="display:none">CreateClassGmm</span><span data-if="python" style="display:none">create_class_gmm</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="train_class_gmm.html"><span data-if="hdevelop" style="display:inline">train_class_gmm</span><span data-if="c" style="display:none">train_class_gmm</span><span data-if="cpp" style="display:none">TrainClassGmm</span><span data-if="com" style="display:none">TrainClassGmm</span><span data-if="dotnet" style="display:none">TrainClassGmm</span><span data-if="python" style="display:none">train_class_gmm</span></a></code>, 
<code><a href="write_samples_class_gmm.html"><span data-if="hdevelop" style="display:inline">write_samples_class_gmm</span><span data-if="c" style="display:none">write_samples_class_gmm</span><span data-if="cpp" style="display:none">WriteSamplesClassGmm</span><span data-if="com" style="display:none">WriteSamplesClassGmm</span><span data-if="dotnet" style="display:none">WriteSamplesClassGmm</span><span data-if="python" style="display:none">write_samples_class_gmm</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="read_samples_class_gmm.html"><span data-if="hdevelop" style="display:inline">read_samples_class_gmm</span><span data-if="c" style="display:none">read_samples_class_gmm</span><span data-if="cpp" style="display:none">ReadSamplesClassGmm</span><span data-if="com" style="display:none">ReadSamplesClassGmm</span><span data-if="dotnet" style="display:none">ReadSamplesClassGmm</span><span data-if="python" style="display:none">read_samples_class_gmm</span></a></code>, 
<code><a href="add_samples_image_class_gmm.html"><span data-if="hdevelop" style="display:inline">add_samples_image_class_gmm</span><span data-if="c" style="display:none">add_samples_image_class_gmm</span><span data-if="cpp" style="display:none">AddSamplesImageClassGmm</span><span data-if="com" style="display:none">AddSamplesImageClassGmm</span><span data-if="dotnet" style="display:none">AddSamplesImageClassGmm</span><span data-if="python" style="display:none">add_samples_image_class_gmm</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="clear_samples_class_gmm.html"><span data-if="hdevelop" style="display:inline">clear_samples_class_gmm</span><span data-if="c" style="display:none">clear_samples_class_gmm</span><span data-if="cpp" style="display:none">ClearSamplesClassGmm</span><span data-if="com" style="display:none">ClearSamplesClassGmm</span><span data-if="dotnet" style="display:none">ClearSamplesClassGmm</span><span data-if="python" style="display:none">clear_samples_class_gmm</span></a></code>, 
<code><a href="get_sample_num_class_gmm.html"><span data-if="hdevelop" style="display:inline">get_sample_num_class_gmm</span><span data-if="c" style="display:none">get_sample_num_class_gmm</span><span data-if="cpp" style="display:none">GetSampleNumClassGmm</span><span data-if="com" style="display:none">GetSampleNumClassGmm</span><span data-if="dotnet" style="display:none">GetSampleNumClassGmm</span><span data-if="python" style="display:none">get_sample_num_class_gmm</span></a></code>, 
<code><a href="get_sample_class_gmm.html"><span data-if="hdevelop" style="display:inline">get_sample_class_gmm</span><span data-if="c" style="display:none">get_sample_class_gmm</span><span data-if="cpp" style="display:none">GetSampleClassGmm</span><span data-if="com" style="display:none">GetSampleClassGmm</span><span data-if="dotnet" style="display:none">GetSampleClassGmm</span><span data-if="python" style="display:none">get_sample_class_gmm</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
